package com.smarttest.portal.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public interface DataProviderService {
	/**
	 * 获得所有hbase
	 * @return
	 */
	String getHbases();
	/**
	 * 根据hbase id获得该hbase所有table
	 * @param hbaseid
	 * @return
	 */
	String getHbaseTables(int hbaseid);
	/**
	 * 根据table获取rowkey的生成规则的html代码
	 * @param tbid
	 * @return
	 */
	String getHbasekeys(int tbid);
	/**
	 * 获得hbase的配置
	 * @param hbaseid
	 * @return
	 */
	String getHbasePro(int hbaseid);
	/**
	 * 更新rowkey生成规则
	 * @param tid
	 * @param rowkeyrule
	 * @return
	 */
	int updateRowkey(int tid, String rowkeyrule);
	/**
	 * 更新hbase的配置
	 * @param hid
	 * @param rootdir
	 * @param znodeparent
	 * @param quorum
	 * @param usehostnameonly
	 * @return
	 */
	int updateHbasePro(int hid, String rootdir, String znodeparent,
			String quorum, String usehostnameonly);
	/**
	 * 根据table获取前端的查询hbase的html代码
	 * @param tid
	 * @return
	 */
	String getRowkeySearchStr(int tid);
	/**
	 * 获得hbase查询结果
	 * @param hid
	 * @param tid
	 * @param jo
	 * @return html table 形式的数据
	 */
	String getHbaseResult(int hid, int tid, JSONObject jo);
	/**
	 * 在配置页面添加hbase
	 * @param name
	 * @param rootdir
	 * @param znodeparent
	 * @param quorum
	 * @param usehostnameonly
	 * @return
	 */
	int addHbase(String name, String rootdir, String znodeparent,
			String quorum, String usehostnameonly);
	/**
	 * 获得所有配置中存在的hbase name
	 * @return
	 */
	String[] getHbaseNames();
	/**
	 * 获得某hbase中所有table name 
	 * @param hid
	 * @return
	 */
	String[] getHtableNames(int hid);
	/**
	 * 添加rowkey规则
	 * @param tid
	 * @param rowkeyrule
	 * @return
	 */
	int addRowkeyRule(int tid, String rowkeyrule);
	/**
	 * 添加htable
	 * @param hid
	 * @param name
	 * @param usemd5
	 * @return
	 */
	int addHtable(int hid, String name, int usemd5);
	/**
	 * 获得hbase查询结果,结果返回List<Map<String, String>>格式数据。以便后面前端处理
	 * @param hid
	 * @param tid
	 * @param jo
	 * @return List<Map<String, String>>
	 */
	List<Map<String, String>> getHbaseResult_New(int hid, int tid, JSONObject jo);
}
